/**
 * fmt 格式 'yyyy-MM-dd' 'yyyy-MM-dd HH:mm:ss'
 *时间格式化
 */
export let vueTimeFormat = (val, fmt) => {
  let data = new Date(val * 1000)
  let o = {
    'M+': data.getMonth() + 1, // 月份
    'd+': data.getDate(), // 日
    'h+': data.getHours(), // 小时
    'm+': data.getMinutes(), // 分
    's+': data.getSeconds(), // 秒
    'q+': Math.floor((data.getMonth() + 3) / 3), // 季度
    'S': data.getMilliseconds() // 毫秒
  }
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (data.getFullYear() + '').substr(4 - RegExp.$1.length))
  }
  for (var k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
  }
  return fmt
}

// 价格过滤器
export let currency = (value = 0, prefix = '', type) => {
  let money = (value / 100).toFixed(2)
  if (type === 2) {
    money = money.replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
  }
  return prefix + money
}

// 给数字加三位一逗号间隔的方法
export let formatNumberFilter = (value) => {
  var b = parseInt(value).toString()
  var len = b.length
  if (len <= 3) { return b }
  var r = len % 3
  return r > 0 ? b.slice(0, r) + ',' + b.slice(r, len).match(/\d{3}/g).join(',') : b.slice(r, len).match(/\d{3}/g).join(',')
}

// 价格处理
export let priceSwitch = (money) => {
  let value = (money / 100).toFixed(2)
  // 强制保留两位小数
  var ff = parseFloat(value)
  if (isNaN(ff)) return false
  var f = Math.round(value * 100) / 100
  var s = f.toString()
  var rs = s.indexOf('.')
  if (rs < 0) {
    rs = s.length
    s += '.'
  }
  while (s.length < (rs + 1) + 2) {
    s += '0'
  }
  // 每三位用一个逗号隔开
  var leftNum = s.split('.')[0]
  var rightNum = '.' + s.split('.')[1]
  var result
  // 定义数组记录截取后的价格
  var resultArray = []
  if (leftNum.length > 3) {
    var i = true
    while (i) {
      resultArray.push(leftNum.slice(-3))
      leftNum = leftNum.slice(0, leftNum.length - 3)
      if (leftNum.length < 4) {
        i = false
      }
    }
    // 由于从后向前截取，所以从最后一个开始遍历并存到一个新的数组，顺序调换
    var sortArray = []
    for (var j = resultArray.length - 1; j >= 0; j--) {
      sortArray.push(resultArray[j])
    }
    result = leftNum + ',' + sortArray.join(',') + rightNum
  } else {
    result = s
  }
  return result
}
